package com.imti.mall.product.service;


import com.imti.mall.model.pms.pojo.PmsProduct;
import com.imti.mall.model.pms.vo.PmsProductParam;
import com.imti.mall.model.pms.vo.PmsProductVo;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;


import java.util.List;
import java.util.Map;


public interface ProductService {



    /**
     * 根据条件查询商品信息
     * @param
     * @return
     */
    public List<PmsProduct> findPmsProduct(Map<String,Object> map);


    /**
     * 总条数查询商品信息
     * @param pmsProduct
     * @return
     */
    public Integer countPmsProduct(PmsProduct pmsProduct);


    /**
     * 根据id查询商品信息
     * @param
     * @return
     */
    public PmsProduct getPmsProductById(Integer id);


    /**
     * 根据id删除商品信息
     * @param
     * @return
     */
    public Integer delPmsProductById(PmsProduct pmsProduct);


    /**
     * 修改商品信息
     * @param pmsProductParam
     * @return
     */
    @Transactional
    public Integer updategetPmsProductById(PmsProductParam pmsProductParam);

    /**
     * 上架下架修改
     * @param
     * @return
     */
    public Integer updatePmsProductPublishStatusById(PmsProductVo pmsProduct);


    /**
     * 新品不是新品修改
     * @param
     * @return
     */
    public Integer updatePmsProductNewStatusById(PmsProductVo pmsProduct);


    /**
     * 推荐 不推荐修改
     * @param
     * @return
     */
    public Integer updatePmsProductRecommandStatusById(PmsProductVo pmsProduct);

    /**
     * 添加商品信息
     * @param pmsProductParam
     * @return
     */
    @Transactional(isolation = Isolation.DEFAULT,propagation = Propagation.REQUIRED)
    public Integer addPmsProduct(PmsProductParam pmsProductParam);
}
